perm filename IIISIM.FAI[GEM,BGB] blob
sn#044844 filedate 1973-05-30 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00009 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 ENTRY IIISIM,IIIWD
C00005 00003 HRRZ PT,-1(P) GET POINTER TO DISPLAY HEADER
C00008 00004 MOVE CHANCW,[002004003324] SET UP COMMANDS FOR DD TO SCREEN ADDRESS
C00010 00005 CONSTANTS TO PLACATE IIIWD
C00011 00006 BEGIN IIIWD - COPIED FROM DISPLY.FAI[1,PDQ]
C00016 00007 BEGIN CHRTBL
C00032 00008 ↑CHRTBL: 0
C00035 00009 TMPGET: MOVE THIS,NEWPTR
C00036 ENDMK
C⊗;
ENTRY IIISIM,IIIWD
TITLE IIISIM - HAND COMPILED SAIL FROM LYNN QUAM'S IIICVT (ON DPYSUB.SAI[1,PDQ])
;
;CALL WITH:
; PUSH P,[<pointer to III display buffer header>]
; PUSHJ P,IIISIM
;
;INTERNAL LINTAB,PTTAB,GFSIZX,GFSIZY,GFSIZL,X0,Y0,SCALX,SCALY
;INTERNAL XCENT,YCENT,LMAR,CHASP,CHSCAL
INTERNAL OVERLAP,DDCHAN
;EXTERNAL CORGET,CORREL
EXTERNAL JOBREL
RET←1
THIS←2
SIZ←3
I←4
J←5
LIN←J
PT←6
T←7
OPCODE←10
CWD←13
CHANCW←14
RA←16
P←17
DDCODE←2
↑IIISIM: MOVE SIZ,GFSIZL ;CREATE AN ARRAY DDBUF[0:(GFSIZL+2)*GFSIZY+10]
ADDI SIZ,2
IMUL SIZ,GFSIZY
ADDI SIZ,1+=10
MOVEM SIZ,DDSIZ
MOVE THIS,44
MOVEM THIS,OLD44
MOVEM THIS,NEWPTR
PUSHJ P,TMPGET
PUSHJ P,[CORLOSS: OUTSTR [ASCIZ/Can't get core for DD buffer/]
CALLI 1,12
SOS (P)
SOS (P)
POPJ P,]
MOVEM THIS,DDBUF
ADDI THIS,2 ;MAKE SOME BYTE POINTERS
HRLI THIS,440100
MOVEM THIS,FPT#
MOVEM THIS,OPT#
MOVE SIZ,GFSIZY ;CREATE AN ARRAY LINTAB[0:GFSIZY-1]
PUSHJ P,TMPGET
PUSHJ P,CORLOSS
MOVEM THIS,LINTAB
MOVE SIZ,GFSIZX ;CREATE AN ARRAY PTTAB[0:GFSIZX]
ADDI SIZ,1
PUSHJ P,TMPGET
PUSHJ P,CORLOSS
MOVEM THIS,PTTAB
HRLI THIS,444400 ;MAKE A BYTE POINTER INTO PTTAB
MOVEM THIS,PTPT#
MOVE PT,FPT ;GET READY TO SET UP LINE TABLE
MOVEI I,=31
MOVE J,GFSIZX
LJ: ADD PT,[4000000]
LI: IBP PT
IDPB PT,PTPT
SOJLE J,LE
SOJGE I,LI
AOS PT,OPT
MOVEI I,=31
JRST LJ
LE: SETZM I
SETZ LIN,
SETZM FIELD
MOVE PT,LINTAB
HRLI PT,LIN
L2: MOVE T,GFSIZL
ADDI T,2
IMUL T,I
MOVEM T,@PT
AOJ I,
ADDI LIN,4
CAMGE LIN,GFSIZY
JRST L2
AOS LIN,FIELD
CAIG LIN,3
JRST L2
MOVE SIZ,DDBUF ;FILL DDBUF WITH CORRECT OPCODE FOR GRAPHICS
ADD SIZ,DDSIZ
SUBI SIZ,1
MOVEI THIS,DDCODE
MOVEM THIS,@DDBUF
MOVE THIS,DDBUF ;MAKE A BLT TO COPY OPCODE
TSC THIS,THIS
ADDI THIS,1
BLT THIS,(SIZ)
PUSH P,[11140]
PUSHJ P,IIIWD
HRRZ PT,-1(P) ;GET POINTER TO DISPLAY HEADER
HRRZ THIS,(PT) ;AND TO BEG. OF III CODE
MOVEM THIS,BEGBUF#
MOVEM THIS,PC#
ADD THIS,1(PT) ;AND TO END OF III CODE
MOVEM THIS,ENDBUF#
AOSA THIS,PC ;INC PC FIRST TIME THRU
DL1: MOVE THIS,PC ;GET WORD OUT OF BUFFER
JUMPE THIS,IIIOK
CAML THIS,BEGBUF ;IS IT WITHIN RANGE
CAML THIS,ENDBUF
JRST [ CAME THIS,BEGBUF
CAME THIS,ENDBUF ;IS IT AT END?
OUTSTR [ASCIZ/
Dpy jump out of bounds - IIISIM /] ;NO, BARF THEN
JRST IIIOK]
MOVE THIS,(THIS)
MOVE OPCODE,THIS
ANDI OPCODE,77 ;SEPARATE OPCODE
AOS PC ;INCREMENT PC
TRNE OPCODE,1 ;IS IT A TEXT INSTRUCTION
JRST [ QUAM: PUSH P,THIS
PUSHJ P,IIIWD
JRST DL1]
CAIE OPCODE,2 ;IS IT A SHORT OR LONG VECTOR
CAIN OPCODE,6
JRST QUAM ;YES, LET QUAM DO IT
CAIE OPCODE,42 ;ANOTHER SHORT VECTOR
CAIN OPCODE,46
JRST QUAM
CAIN OPCODE,20 ;IS IT A JUMP
JRST [ HLRZ THIS,THIS
MOVEM THIS,PC ;SET PC
JRST DL1] ;AND GET ANOTHER INSTRUCTION
CAIN OPCODE,24 ;IS IT A JSR
JRST [ HLRZ PT,PC ;MAKE A JUMP TO NEXT INSTRUCTION
HRRI PT,20
HLRZ THIS,THIS ;GET ADDRESS OF SUBROUTINE
MOVEM PT,(THIS) ;PUT IT INTO FIRST INSTRUCTION OF SUBROUTINE
ADDI THIS,1 ;GET ADDRESS OF SECOND INSTRUCTION OF SUBR.
MOVEM THIS,PC ;SET PC TO IT
JRST DL1] ;AND EXECUTE SUBROUTINE
JUMPN OPCODE,DL1 ;IF ITS NOT A HALT, IGNORE IT
IIIOK:
MOVE CHANCW,[002004003324] ;SET UP COMMANDS FOR DD TO SCREEN ADDRESS
MOVE CWD,[116000001454]
SKIPE OVERLAP
TLO CWD,040000
MOVE T,DDCHAN
DPB T,[POINT 8,CHANCW,23]
SETZM FIELD
MOVE PT,DDBUF
HRLI PT,444400
MOVE I,FIELD
FIXL1: DPB I,[POINT 4,CWD,23]
MOVE T,I
LSH T,-4
DPB T,[POINT 5,CWD,15]
IDPB CWD,PT
IDPB CHANCW,PT
MOVEI CWD,454
ADD PT,GFSIZL
ADDI I,4
CAMGE I,GFSIZY
JRST FIXL1
AOS I,FIELD
CAIG I,3
JRST FIXL1
MOVE I,[4010334]
IDPB I,PT
SETZ I,
IDPB I,PT
MOVE DDBUF
HRRM DPYHDR
DPYOUT DPYHDR ;OUTPUT THE BUFFER!
; MOVE THIS,PTTAB ;RELEASE SPACE OCCUPIED BY PTTAB
; PUSHJ P,CORREL
; MOVE THIS,LINTAB ;RELEASE SPACE OCCUPIED BY LINTAB
; PUSHJ P,CORREL
; MOVE THIS,DDBUF ;RELEASE SPACE OCCUPIED BY DDBUF
; PUSHJ P,CORREL
MOVE 1,OLD44
CORE 1,
JRST [ OUTSTR[ASCIZ/Can't shrink core!/]
CALLI 1,12
JRST .+1 ]
SUB P,[XWD 2,2]
JRST @2(P)
;CONSTANTS TO PLACATE IIIWD
↑ASPECT: 0.85
↑CHASP: 1.0
↑GFSIZX: =512
↑GFSIZY: =480
GFSIZL: =16
;SQALE←←480/1024
↑SCALY: =122880 ;SCALQ*1B18
↑SCALX: =104448 ;ASPECT*SCALY
↑CHSCAL: 400000
↑XCENT: XWD =256,0
↑YCENT: XWD =240,0
↑LMAR: 0
;RMAR: =1023
;YBOT: =479
OVERLAY:1
DDCHAN: 0
↑X0: 0
↑Y0: 0
FIELD: 0
DDBUF: 0
↑LINTAB: 0
↑PTTAB: 0
DPYHDR: 400000000000
DDSIZ: 0
DDDONE: 0
BEGIN IIIWD - COPIED FROM DISPLY.FAI[1,PDQ]
A←1
B←2
C←3
D←4
X←1
Y←2
PT←5
N←6
M←7
SPT←10
K←11
P←17
COFFY←2;
CR←15
LF←12
;INTERNAL IIIWD;
;EXTERNAL LINTAB,PTTAB,GFSIZX,GFSIZY,GFSIZL,X0,Y0,SCALX,SCALY,XCENT,YCENT,LMAR,CHASP,CHSCAL
↑IIIWD: MOVEI K,1
MOVE LINTAB
HRRM LT1
HRRM LT2
MOVE PTTAB
HRRM PT1
HRRM PT2
MOVE A,-1(P)
POP P,-1(P)
TRNE A,1
JRST PSTR ;A STRING
MOVE B,A
ANDI B,17
CAIN B,2
JRST [PUSH P,A ;SHORT VECTOR WORD
LSH A,-24
PUSHJ P,MKSVEC
POP P,A
LSH A,-4
JRST MKSVEC]
CAIE B,6
POPJ P,
LDB C,[POINT 3,A,27] ;LONG VECTOR WORD
JUMPE C,MKLVEC
MOVE C,CHSIZS-1(C) ;CHANGE CHARACTER SIZE
MOVE D,CHSCAL
FSC D,233
FMP D,C
FMP D,CHASP
FIX D,233000
MOVEM D,CHSCX#
MOVE D,CHSCAL
FSC D,233
FMP C,D
FIX C,233000
MOVEM C,CHSCY#
IMULI C,=12
MOVEM D,CHSC12#
MOVE C,CHSCY
IMULI C,COFFY
MOVEM C,COFCC#
MKLVEC: MOVE C,A
LDB X,[POINT 11,C,10]
LDB Y,[POINT 11,C,21]
TRNE X,2000
ORCMI X,3777
TRNE Y,2000
ORCMI Y,3777
LDB C,[POINT 3,C,31]
JRST MKVEC
MKSVEC: MOVE C,A
LDB X,[POINT 7,C,26]
LDB Y,[POINT 7,C,33]
ANDI C,3
TRNE X,100
ORCMI X,77
TRNE Y,100
ORCMI Y,77
MKVEC: IMUL X,SCALX
IMUL Y,SCALY
MOVNS Y
TRZE C,4
JRST [ADD X,XCENT ;ABSOLUTE VECTOR
ADD Y,YCENT
SUB X,X0
SUB Y,Y0
JRST .+1]
MKV2: JRST VTAB(C)
VTAB: JRST MKLINE ;VISIBLE VECTOR
JRST MKPTR ;END POINT VECTOR
JRST [ADDB X,X0 ;INVISIBLE VECTOR
ADDB Y,Y0
POPJ P,]
CPOPJ: POPJ P, ;DO NOTHING
MKLINE: PUSH P,X
PUSH P,Y
MOVM C,X
MOVM D,Y
CAMG C,D
MOVE C,D ;C←MAX(C,D)
HLRZM C,M;
AOS M
IDIV Y,M
MOVEM Y,DY#
IDIV X,M
MOVEM X,DX#
MOVE X,X0
MOVE Y,Y0
L: HLRZ C,X
HLRZ D,Y
CAMGE C,GFSIZX
CAML D,GFSIZY
JRST L2 ;OFF SCREEN
LT1: MOVE D,LINTAB(D)
PT1: DPB K,PTTAB(C)
L2: ADD X,DX
ADD Y,DY
SOJGE M,L
POP P,Y
POP P,X
MKPTR: ADDB X,X0
ADDB Y,Y0
MKPT: HLRZ C,X
HLRZ D,Y
CAMGE C,GFSIZX
CAML D,GFSIZY
POPJ P, ;OFF SCREEN
LT2: MOVE D,LINTAB(D)
PT2: DPB K,PTTAB(C)
POPJ P,
CHARS: 0
0
PSTR: MOVEM A,CHARS
MOVE COFCC
ADDM Y0
MOVE PT,[POINT 7,CHARS,-1]
CLOOP: ILDB N,PT
JUMPE N, [MOVN COFCC
ADDM Y0
POPJ P,]
CAIN N,CR
JRST [MOVE A,LMAR ;CARRIAGE RETURN
MOVEM A,X0
JRST CLOOP]
CAIN A,LF
JRST [MOVE A,CHSC12 ;LINE FEED
ADDM A,Y0
JRST CLOOP]
HLRZ SPT,CHRTBL(N)
HRLI SPT,(<POINT 5,0>)
HRRZ N,CHRTBL(N)
SLOOP: JUMPLE N,CLOOP
ILDB C,SPT
ILDB X,SPT
ILDB Y,SPT
TRNE X,20
ORCMI X,37
TRNE Y,20
ORCMI Y,37
MOVNS Y
IMUL X,CHSCX
IMUL Y,CHSCY
JUMPE C, [PUSHJ P,MKPTR
JRST LX1]
CAIE C,2
JRST [ADDM X,X0
ADDM Y,Y0
SOJA N,SLOOP]
PUSHJ P,MKLINE
LX1: SOJA N,SLOOP
CHSIZS: 1.33
1.9999
2.34
2.67
4.01
5.33
8.13
BEND IIIWD
BEGIN CHRTBL
stdh←11
stdw←6
; Stroke table
; XWD <table address>,<number of strokes>
; table: byte (5) pen,dx,dy
c1: byte (5) 3,0,4, 2,2,-2, 2,2,2 3,-2,4, 2,0,-6, 3,4,-2
c2: byte (5) 3,0,3, 2,0,2, 2,1,1, 2,1,0, 2,1,-1, 2,1,<1
>,3,-1,-1, 2,0,-2, 2,1,-1, 3,-1,1, 2,-1,<-1
>,2,-1,0, 2,-1,1, 3,6,-3
c3: byte (5) 2,1,1, 2,0,4, 2,1,1, 2,2,0, 2,1,-1, 2,-1,<-1
>,2,-3,0, 3,3,0, 2,1,-1, 2,-1,-1, 2,-3,0, 3,6,-2
c4: byte (5) 3,0,4, 2,2,2, 2,2,-2, 3,2,-4
c5: byte (5) 3,0,5, 2,4,0, 2,0,-1, 3,2,-4
c6: byte (5) 3,1,4, 2,2,0, 3,0,2, 2,-1,0, 2,-1,-1, 2,0,<-2
>,2,1,-1, 2,1,0, 3,3,-2
c7: byte (5) 3,1,2, 2,0,4, 3,-1,0, 2,4,0, 3,-1,0, 2,0,<-4
>,3,3,-2
c10: byte (5) 3,0,2, 2,2,2, 3,-2,3, 2,0,-1, 2,4,-4, 3,2,-2
c12: byte (5) 3,0,-stdh
c13: byte (5) 3,0,2, 2,1,-1, 2,1,1, 2,0,5, 2,1,1, 2,1,-1, 3,2,-7
c14: byte (5) 3,0,3, 2,4,0, 3,0,3, 2,-4,0, 3,2,2, 2,0,-4, 3,4,-4
c16: byte (5) 3,1,3, 2,1,1, 2,0,1, 2,1,1, 2,1,<-1
>, 2,0,-1, 2,-1,-1, 2,-1,1, 3,0,1, 2,-1,<1
>, 2,-1,-1, 2,0,-1, 2,1,-1, 3,5,-3
c17: byte (5) 3,0,3, 2,0,1, 2,1,1, 2,2,0, 2,1,<-1
>,2,0,2, 2,-2,2, 2,-1,0, 3,3,-4, 2,0,<-1
>,2,-1,-1, 2,-2,0, 2,-1,1, 3,6,-3
c20: byte (5) 3,4,7, 2,-3,0, 2,-1,-1, 2,0,-2, 2,1,<-1
>,2,3,0, 3,2,-3
c21: byte (5) 3,0,3, 2,3,0, 2,1,1, 2,0,2, 2,-1,1, 2,-3,0, 3,6,-7
c22: byte (5) 3,0,4, 2,0,2, 2,1,1, 2,2,0, 2,1,-1, 2,0,-2, 3,2,-4
c23: byte (5) 3,0,7, 2,0,-2, 2,1,-1, 2,2,0, 2,1,1, 2,0,2, 3,2,-7
c24: byte (5) 3,0,10, 2,2,-6, 2,2,6, 3,-1,-2, 2,-2,0, 3,5,-6
c25: byte (5) 3,0,2, 2,4,0, 2,0,3, 2,-3,0, 3,-1,3, 2,4,<0
>,2,0,-3, 3,2,-5
c26: byte (5) 3,0,4, 2,0,2, 2,1,1, 2,2,0, 2,1,-1, 2,0,<-2
>,2,-1,-1, 2,-2,0, 2,-1,1, 3,1,0, 2,2,2, 3,-2,0, 2,2,-2, 3,3,-4
c27: byte (5) 3,2,0, 2,-2,2, 2,4,4, 2,-2,2, 3,-2,-2, 2,4,0, 3,-4,-4, 2,4,<0
>,3,2,-2
c30: byte (5) 2,4,0, 3,2,0
c31: byte (5) 3,2,3, 2,2,2, 2,-2,2, 3,-2,-2, 2,4,0, 3,2,-5
c32: byte (5) 3,0,10, 2,1,1, 2,1,0, 2,0,-1, 2,1,0, 2,1,1, 3,2,-11
c33: byte (5) 3,0,1, 2,4,6, 3,0,-2, 2,-4,0, 3,0,-2, 2,4,0, 3,2,-2
c34: byte (5) 3,1,2, 2,2,0, 3,0,2, 2,-2,2, 2,2,2, 3,3,-10
c35: byte (5) 3,1,2, 2,2,0, 3,-2,2, 2,2,2, 2,-2,2, 3,5,-10
c36: byte (5) 3,0,3, 2,4,0, 3,0,2, 2,-4,0, 3,0,2, 2,4,0, 3,2,-7
c37: byte (5) 3,0,6, 2,2,-2, 2,2,2, 3,2,-6
c40: byte (5) 3,stdw,0
c41: byte (5) 3,2,1, 2,0,1, 3,0,2, 2,0,4, 3,4,-10
c42: byte (5) 3,1,7, 2,0,2, 3,2,0, 2,0,-2, 3,3,-7
c43: byte (5) 3,1,2, 2,0,5, 3,2,0, 2,0,-5, 3,1,1, 2,-4,0, 3,0,<3
>,2,4,0, 3,2,-6
c44: byte (5) 3,2,1, 2,0,10, 3,2,-2, 2,-1,1, 2,-2,0, 2,-1,<-1
>,2,0,-1, 2,1,-1, 2,2,0, 2,1,-1, 2,0,-2, 2,-1,<-1
>,2,-2,0, 2,-1,1, 3,6,-3
c45: byte (5) 3,0,2, 2,0,1, 2,4,4, 2,0,1, 3,-3,0, 2,-1,<0
>,2,0,-1, 2,1,0, 2,0,1, 3,3,-5, 2,1,0, 2,0,<-1
>,2,-1,0, 2,1,0, 3,3,-1
c46: byte (5) 3,4,4, 2,-2,-2, 2,-1,0, 2,-1,1, 2,0,1, 2,2,2, 2,0,<1
>,2,-1,1, 2,-1,-1, 2,0,-1, 2,4,-4, 3,2,-2
c47: byte (5) 3,0,7, 2,1,1, 2,0,1, 2,1,0, 2,0,-1, 2,-1,0, 3,5,-7
c50: byte (5) 3,4,2, 2,-2,2, 2,0,2, 2,2,2, 3,2,-10
c51: byte (5) 3,0,2, 2,2,2, 2,0,2, 2,-2,2, 3,6,-10
c52: byte (5) 3,2,2, 2,0,6, 3,-2,-1, 2,4,-4, 3,0,2, 2,-4,<0
>,3,0,-2, 2,4,4, 3,2,-7
c53: byte (5) 3,2,3, 2,0,4, 3,-2,-2, 2,4,0, 3,2,-5
c54: byte (5) 3,0,1, 2,1,1, 2,0,1, 3,5,-3
c55: byte (5) 3,0,5, 2,4,0, 3,2,-5
c56: byte (5) 3,1,2, 0,1,0, 3,4,-2
c57: byte (5) 3,0,3, 2,4,4, 3,2,-7
c60: byte (5) 3,0,3, 2,4,4, 2,-1,1, 2,-2,0, 2,-1,-1, 2,0,<-4
>,2,1,-1, 2,2,0, 2,1,1, 2,0,4, 3,2,-7
c61: byte (5) 3,1,2, 2,2,0, 3,-1,0, 2,0,6, 2,-1,-1, 3,5,-7
c62: byte (5) 3,0,7, 2,1,1, 2,2,0, 2,1,-1, 2,0,-1, 2,-4,-4, 2,4,0, 3,2,-2
c63: byte (5) 3,0,3, 2,1,-1, 2,2,0, 2,1,1, 2,0,1, 2,-1,1, 2,-1,<0
>,3,1,0, 2,1,1, 2,0,1, 2,-1,1, 2,-2,0, 2,-1,-1, 3,6,-7
c64: byte (5) 3,3,2, 2,0,6, 2,-3,-3, 2,0,-1, 2,4,0, 3,2,-4
c65: byte (5) 3,0,3, 2,1,-1, 2,2,0, 2,1,1, 2,0,2, 2,-1,1, 2,-3,<0
>,2,0,2, 2,4,0, 3,2,-10
c66: byte (5) 3,0,5, 2,0,-2, 2,1,-1, 2,2,0, 2,1,1, 2,0,1, 2,-1,1, 2,-3,<0
>,2,0,1, 2,2,2, 2,1,0, 3,3,-10
c67: byte (5) 3,0,10, 2,4,0, 2,-2,-4, 2,0,-2, 3,4,-2
c70: byte (5) 3,1,5, 2,-1,-1, 2,0,-1, 2,1,-1, 2,2,0, 2,1,<1
>,2,0,1, 2,-1,1, 2,-2,0, 2,-1,1, 2,0,1, 2,1,<1
>,2,2,0, 2,1,-1, 2,0,-1, 2,-1,-1, 3,3,-5
c71: byte (5) 3,1,2, 2,1,0, 2,2,2, 2,0,3, 2,-1,1, 2,-2,0, 2,-1,<-1
>,2,0,-1, 2,1,-1, 2,3,0, 3,2,-5
c72: byte (5) 3,0,3, 2,1,0, 3,0,3, 2,-1,0, 3,6,-6
c73: byte (5) 3,0,1, 2,1,1, 2,0,1, 3,0,3, 2,-1,0, 3,6,-6
c74: byte (5) 3,3,3, 2,-2,2, 2,2,2, 3,3,-7
c75: byte (5) 3,0,4, 2,4,0, 3,0,2, 2,-4,0, 3,6,-6
c76: byte (5) 3,1,7, 2,2,-2, 2,-2,-2, 3,5,-3
c77: byte (5) 3,1,2, 2,1,0, 3,0,2, 2,0,1, 2,2,2, 2,-1,1, 2,-2,<0
>,2,-1,-1, 3,6,-7
c100: byte (5) 3,3,2, 2,-2,0, 2,-1,1, 2,0,4, 2,1,1, 2,2,0, 2,1,<-1
>,2,0,-3, 2,-2,0, 2,0,2, 2,2,0, 3,2,-6
c101: byte (5) 3,0,2, 2,0,5, 2,1,1, 2,2,0, 2,1,-1, 2,0,-5, 3,-4,3, 2,4,0, 3,2,-5
c102: byte (5) 3,0,2, 2,3,0, 2,1,1, 2,0,1, 2,-1,1, 2,-3,0, 3,3,<0
>,2,1,1, 2,0,1, 2,-1,1, 2,-3,0, 2,0,-6, 3,6,-2
c103: byte (5) 3,4,7, 2,-1,1, 2,-2,0, 2,-1,-1, 2,0,-4, 2,1,-1, 2,2,0, 2,1,1, 3,2,-3
c104: byte (5) 3,0,2, 2,3,0, 2,1,1, 2,0,4, 2,-1,1, 2,-3,0, 3,1,0, 2,0,-6, 3,5,-2
c105: byte (5) 3,4,2, 2,-4,0, 2,0,6, 2,4,0, 3,-1,-3, 2,-3,0, 3,6,-5
c106: byte (5) 3,0,2, 2,0,6, 2,4,0, 3,-1,-3, 2,-3,0, 3,6,-5
c107: byte (5) 3,3,4, 2,1,0, 2,0,-1, 2,-1,-1, 2,-2,0, 2,-1,<1
>,2,0,4, 2,1,1, 2,2,0, 2,1,-1, 3,2,-7
c110: byte (5) 3,0,2, 2,0,6, 3,0,-3, 2,4,0, 3,0,3, 2,0,-6, 3,2,-2
c111: byte (5) 3,1,2, 2,2,0, 3,-1,0, 2,0,6, 3,-1,0, 2,2,0, 3,3,-10
c112: byte (5) 3,0,3, 2,1,-1, 2,2,0, 2,1,1, 2,0,5, 3,2,-10
c113: byte (5) 3,0,2, 2,0,6, 3,4,0, 2,-3,-3, 2,3,-3, 3,4,-2
c114: byte (5) 3,0,10, 2,0,-6, 2,4,0, 3,2,-2
c115: byte (5) 3,0,2, 2,0,6, 2,2,-2, 2,2,2, 2,0,-6, 3,2,-2
c116: byte (5) 3,0,2, 2,0,6, 2,4,-6, 2,0,6, 3,2,-10
c117: byte (5) 3,0,3, 2,0,4, 2,1,1, 2,2,0, 2,1,-1, 2,0,-4, 2,-1,-1, 2,-2,0, 2,-1,1, 3,6,-3
c120: byte (5) 3,0,2, 2,0,6, 2,3,0, 2,1,-1, 2,0,-1, 2,-1,-1, 2,-3,0, 3,6,-5
c121: byte (5) 3,0,3, 2,0,4, 2,1,1, 2,2,0, 2,1,-1, 2,0,-3, 2,-2,<-2
>,2,-1,0, 2,-1,1, 3,2,2, 2,2,-2, 3,2,-3
c122: byte (5) 3,0,2, 2,0,6, 2,3,0, 2,1,-1, 2,0,-1, 2,-1,-1, 2,-3,<0
>,3,1,0, 2,3,-3, 3,2,-2
c123: byte (5) 3,4,7, 2,-1,1, 2,-2,0, 2,-1,-1, 2,0,-1, 2,1,-1, 2,2,<0
>,2,1,-1, 2,0,-1, 2,-1,-1, 2,-2,0, 2,-1,1, 3,6,-3
c124: byte (5) 3,0,10, 2,4,0, 3,-2,0, 2,0,-6, 3,4,-2
c125: byte (5) 3,0,3, 2,0,5, 3,4,0, 2,0,-5, 2,-1,-1, 2,-2,0, 2,-1,1, 3,6,-3
c126: byte (5) 3,0,10, 2,0,-3, 2,2,-3, 2,2,3, 2,0,3, 3,2,-10
c127: byte (5) 3,0,2, 2,0,6, 3,4,0, 2,0,-6, 2,-2,2, 2,-2,-2, 3,6,-2
c130: byte (5) 3,0,2, 2,4,6, 3,-4,0, 2,4,-6, 3,2,-2
c131: byte (5) 3,2,2, 2,0,3, 2,-2,3, 3,4,0, 2,-2,-3, 3,4,-5
c132: byte (5) 3,0,10, 2,4,0, 2,-4,-6, 2,4,0, 3,2,-2
c133: byte (5) 3,3,1, 2,-2,0, 2,0,10, 2,2,0, 3,3,-11
c134: byte (5) 3,0,7, 2,4,-4, 3,2,-3
c135: byte (5) 3,1,11, 2,2,0, 2,0,-10, 2,-2,0, 3,5,-1
c136: byte (5) 3,2,2, 2,0,6, 3,-2,-2, 2,2,2, 2,2,-2, 3,2,-6
c137: byte (5) 3,2,3, 2,-2,2, 2,2,2, 3,-2,-2, 2,4,0, 3,2,-5
c140: byte (5) 3,3,10, 2,-1,0, 2,0,1, 2,1,0, 2,0,-1, 2,1,-1, 3,2,-7
c141: byte (5) 3,1,6, 2,2,0, 2,1,-1, 2,0,-3, 2,-3,0, 2,-1,1, 2,1,<1
>,2,3,0, 3,2,-4
c142: byte (5) 3,0,10, 2,0,-6, 2,3,0, 2,1,1, 2,0,2, 2,-1,1, 2,-3,0, 3,6,-6
c143: byte (5) 3,4,5, 2,-1,1, 2,-2,0, 2,-1,-1, 2,0,-2, 2,1,-1, 2,3,0, 3,2,-2
c144: byte (5) 3,4,10, 2,0,-6, 2,-3,0, 2,-1,1, 2,0,2, 2,1,1, 2,3,0, 3,2,-6
c145: byte (5) 3,3,2, 2,-2,0, 2,-1,1, 2,0,2, 2,1,1, 2,2,0, 2,1,<-1
>,2,-1,-1, 2,-3,0, 3,6,-4
c146: byte (5) 3,1,2, 2,0,5, 2,1,1, 2,1,0, 2,1,-1, 3,-2,-2, 2,-2,0, 3,6,-5
c147: byte (5) 3,1,0, 2,2,0, 2,1,1, 2,0,4, 2,-1,1, 2,-2,0, 2,-1,<-1
>,2,0,-2, 2,1,-1, 2,3,0, 3,2,-2
c150: byte (5) 3,0,2, 2,0,6, 3,0,-2, 2,3,0, 2,1,-1, 2,0,-3, 3,2,-2
c151: byte (5) 3,2,2, 2,0,3, 3,0,1, 2,0,1, 3,4,-7
c152: byte (5) 3,0,1, 2,1,-1, 2,2,0, 2,1,1, 2,0,4, 3,0,1, 2,0,1, 3,2,-7
c153: byte (5) 3,0,2, 2,0,6, 3,4,-2, 2,-2,-2, 2,-2,0, 3,2,0, 2,2,-2, 3,2,-2
c154: byte (5) 3,1,2, 2,0,6, 3,5,-10
c155: byte (5) 3,0,2, 2,0,4, 2,1,0, 2,1,-1, 2,1,1, 2,1,-1, 2,0,-4, 3,-2,0, 2,0,4, 3,4,-5
c156: byte (5) 3,0,2, 2,0,4, 2,1,-1, 2,1,1, 2,1,0, 2,1,-1, 2,0,-3, 3,2,-2
c157: byte (5) 3,0,3, 2,0,2, 2,1,1, 2,2,0, 2,1,-1, 2,0,-2, 2,-1,-1, 2,-2,0, 2,-1,1, 3,6,-3
c160: byte (5) 2,0,6, 2,3,0, 2,1,-1, 2,0,-2, 2,-1,-1, 2,-3,0, 3,6,-2
c161: byte (5) 3,4,2, 2,-3,0, 2,-1,1, 2,0,2, 2,1,1, 2,2,0, 2,1,-1, 2,0,-5, 3,2,0
c162: byte (5) 3,0,2, 2,0,4, 3,0,-2, 2,2,2, 2,1,0, 2,1,-1, 3,2,-5
c163: byte (5) 3,0,2, 2,3,0, 2,1,1, 2,-1,1, 2,-2,0, 2,-1,1, 2,1,1, 2,3,0, 3,2,-6
c164: byte (5) 3,0,6, 2,4,0, 3,-2,2, 2,0,-5, 2,1,-1, 2,1,0, 3,2,-2
c165: byte (5) 3,0,6, 2,0,-3, 2,1,-1, 2,2,0, 2,1,1, 2,0,3, 3,2,-6
c166: byte (5) 3,0,6, 2,0,-2, 2,2,-2, 2,2,2, 2,0,2, 3,2,-6
c167: byte (5) 3,0,6, 2,0,-3, 2,1,-1, 2,1,1, 2,1,-1, 2,1,1, 2,0,3, 3,2,-6
c170: byte (5) 3,0,2, 2,4,4, 3,-4,0, 2,4,-4, 3,2,-2
c171: byte (5) 2,4,4, 2,0,2, 3,-4,0, 2,0,-2, 2,2,-2, 3,4,-2
c172: byte (5) 3,0,6, 2,4,0, 2,-4,-4, 2,4,0, 3,2,-2
c173: byte (5) 3,4,11, 2,-1,-1, 2,0,-2, 2,-1,-1, 2,1,-1, 2,0,-2, 2,1,-1, 3,2,-1
c174: byte (5) 3,2,11, 2,0,-11, 3,4,0
c175: byte (5) 3,2,2, 2,0,1, 2,-2,2, 2,2,2, 2,0,1, 3,0,-1, 2,2,<-2
>,2,-2,-2, 3,4,-3
c176: byte (5) 3,0,11, 2,1,-1, 2,0,-2, 2,1,-1, 2,-1,-1, 2,0,-2, 2,-1,-1, 3,6,-1
↑CHRTBL: 0
xwd c1,6
xwd c2,16
xwd c3,14
xwd c4,4
xwd c5,4
xwd c6,11
xwd c7,7
xwd c10,6
0
xwd c12,1
xwd c13,7
xwd c14,7
0
xwd c16,16
xwd c17,16
xwd c20,7
xwd c21,7
xwd c22,7
xwd c23,7
xwd c24,6
xwd c25,10
xwd c26,16
xwd c27,11
xwd c30,2
xwd c31,6
xwd c32,7
xwd c33,7
xwd c34,6
xwd c35,6
xwd c36,7
xwd c37,4
xwd c40,1
xwd c41,5
xwd c42,5
xwd c43,11
xwd c44,17
xwd c45,17
xwd c46,14
xwd c47,7
xwd c50,5
xwd c51,5
xwd c52,11
xwd c53,5
xwd c54,4
xwd c55,3
xwd c56,3
xwd c57,3
xwd c60,13
xwd c61,6
xwd c62,10
xwd c63,16
xwd c64,6
xwd c65,12
xwd c66,14
xwd c67,5
xwd c70,21
xwd c71,13
xwd c72,5
xwd c73,6
xwd c74,4
xwd c75,5
xwd c76,4
xwd c77,11
xwd c100,14
xwd c101,11
xwd c102,15
xwd c103,11
xwd c104,11
xwd c105,7
xwd c106,6
xwd c107,13
xwd c110,7
xwd c111,7
xwd c112,6
xwd c113,6
xwd c114,4
xwd c115,6
xwd c116,5
xwd c117,12
xwd c120,10
xwd c121,14
xwd c122,12
xwd c123,15
xwd c124,5
xwd c125,10
xwd c126,6
xwd c127,7
xwd c130,5
xwd c131,6
xwd c132,5
xwd c133,5
xwd c134,3
xwd c135,5
xwd c136,6
xwd c137,6
xwd c140,7
xwd c141,11
xwd c142,10
xwd c143,10
xwd c144,10
xwd c145,12
xwd c146,10
xwd c147,13
xwd c150,7
xwd c151,5
xwd c152,10
xwd c153,10
xwd c154,3
xwd c155,12
xwd c156,10
xwd c157,12
xwd c160,7
xwd c161,11
xwd c162,7
xwd c163,11
xwd c164,7
xwd c165,7
xwd c166,6
xwd c167,10
xwd c170,5
xwd c171,6
xwd c172,5
xwd c173,10
xwd c174,3
xwd c175,11
xwd c176,10
0
BEND CHRTBL
TMPGET: MOVE THIS,NEWPTR
ADDB SIZ,NEWPTR
CORE SIZ,
POPJ P,
AOS (P)
POPJ P,
OLD44: 0
NEWPTR: 0
end